Il paradosso tra continuità e discrezione
nel mondo della logica continua (calcolo differenziale), ci affidiamo a regole come la regola del prodotto:
$$\frac{d(fg)}{dx} = f\frac{dg}{dx} + g\frac{df}{dx}$$
oppure l'integrazione ricorsiva per funzioni come:
$$\int \log^n |x| dx = x \log^n |x| - n \int \log^{n-1} |x| dx$$
Sebbene eleganti, queste strutture continue sono prevedibili. La sicurezza informatica richiede tuttavia complessità unidirezionale. La matematica discreta fornisce ciò attraverso la logica dei divisori e dei numeri primi, dove le funzioni sono facili da calcolare in una direzione ma virtualmente impossibili da invertire senza una "chiave".
Prima di poter proteggere una rete, dobbiamo padroneggiare l'induzione matematica per verificare gli algoritmi che gestiscono i nostri dati. Prendiamo i numeri di Fibonacci, $f_n$. Possiamo dimostrare identità come:
$$\sum_{k=1}^n (-1)^k f_k = (-1)^n f_{n-1} - 1$$
e verificare i tassi di crescita usando relazioni di tipo Binet:
$$f_n = \frac{f_{n-1} + \sqrt{5f_{n-1}^2 + 4(-1)^{n+1}}}{2}$$
Questa logica discreta, combinata con casi base, garantisce che algoritmi come Insertion Sort (Algo 4.2.3) o il algoritmo del tassellamento con tromini (Algo 4.4.4) funzionino correttamente man mano che crescono fino a trilioni di operazioni.
Dai pattern alla sicurezza: lo spostamento verso RSA
La sicurezza moderna sfrutta algoritmi randomizzati e la tecnica divide et impera. Utilizzando il teorema fondamentale dell'aritmetica—l'idea che ogni numero intero abbia un'unica impronta di numeri primi—creiamo il sistema crittografico RSA. A differenza delle curve continue del calcolo differenziale, RSA opera sulla logica "sguadrata" dei fattori primi.